package model

import "time"

type Notification struct {
	Version           string            `json:"version"`
	GroupKey          string            `json:"groupKey"`
	Status            string            `json:"status"`
	Receiver          string            `json:"receiver"`
	GroupLabels       map[string]string `json:"groupLabels"`
	CommonLabels      map[string]string `json:"commonLabels"`
	CommonAnnotations map[string]string `json:"commonAnnotations"`
	ExternalURL       string            `json:"externalURL"`
	Alerts            []Alert           `json:"alerts"`
}

type Alert struct {
	Status       string      `json:"status"`
	Labels       Labels      `json:"labels"`
	Annotations  Annotations `json:"annotations"`
	StartsAt     time.Time   `json:"startsAt"`
	EndsAt       time.Time   `json:"endsAt"`
	GeneratorURL string      `json:"generatorURL"`
}

type Annotations struct {
	Description string `json:"description"`
	Summary     string `json:"summary"`
}

type Labels struct {
	Alertname   string `json:"alertname"`
	Instance    string `json:"instance"`
	Job         string `json:"job"`
	Severity    string `json:"severity"`
	Queue       string `json:"queue"`
	RequestPath string `json:"request_path"`
	Module      string `json:"module"`
}

type AlertMap map[string]AlertData

type AlertData struct {
	Instance      string  `json:"instance"`
	Status        string  `json:"status"`
	RobotName     string  `json:"robot_name"` //告警群:机器人名，对应配置文件里的Robot.alertName
	RealAlertName string  `json:"real_alert_name"`
	Alerts        []Alert `json:"alerts"`
}
